package io;

import java.io.File;
import java.util.Scanner;

//扫描指定目录，并找到名称中包含指定字符的所有普通文件（不包含目录），并且后续询问用户是否要删除该文件
public class Demo4 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        // 1.用户输入扫描目录的名称
        System.out.println("请输入要扫描目录名称：");
        String directoryName = scanner.nextLine();
        File rootPath = new File(directoryName);
        // 判断 扫描目录 是否存在
        if( !rootPath.exists()) {
            System.out.println("扫描目录不存在，退出程序!");
            return;
        }

        // 2. 用户输入要查找的普通文件的名称
        System.out.println("请输入查找文件的名称：");
        String targetFileName = scanner.nextLine();

        // 3. 递归查找所有子目录中的文件
        File[] files = rootPath.listFiles();
        Demo4.deleteTargetFile(files, targetFileName);

    }
    public static void deleteTargetFile(File[] files, String targetFileName) {
        if(files == null) return;
        Scanner scanner = new Scanner(System.in);
        for (File file : files) {
            // 该文件是普通文件 且 名称包含指定字符
            if(file.isFile() && file.getName().contains(targetFileName)) {
                System.out.print(file.getAbsolutePath() + "    ->     ");
                System.out.println("是否删除该文件：Y/N（无视大小写）");
                String choice = scanner.nextLine();
                // 确认是否删除文件
                if(choice.equals("Y") || choice.equals("y")) {
                    file.delete();
                    System.out.println("删除成功");
                } else {
                    System.out.println("取消删除");
                }
            // 该文件 是一个 目录，继续查找子目录是否含有 特定文件
            } else if(file.isDirectory()) {
                deleteTargetFile(file.listFiles(), targetFileName);
            }
        }
    }
}
